const mongoose = require('mongoose')
mongoose.set('useFindAndModify', false)

// schema实例
const schema = new mongoose.Schema({
	name: { type : String },
	avatar: { type : String},
	// 横幅,背景
	banner: { type : String },
	// 后羿，称号：半神之弓
	title: { type : String},
	// 错误，这是一个分类，关联Category模型（Category.js导出了Category模型），ObjectId指的是单个id，如果有多个选择，则无法实现，比如司马懿属于刺客，法师，这要选两个
	// category : { type : mongoose.SchemaTypes.ObjectId, ref : 'Category'}
	// 实现多选，一个英雄关联多个分类，做法：用数组[]表示，里面可填放多个id，都是关联Category模型
	categories: [
		{ type : mongoose.SchemaTypes.ObjectId, ref : 'Category' }
	],
	// 分数scores ，难度，技能，攻击，生存
	scores: {
		difficulty : { type : Number },
		skills : { type : Number }, 
		attack : { type : Number }, 
		survive : { type : Number }, 
	},
	//  技能：3个以上技能+1个被动
	skills: [
		// 可多选，用数组[]表示，而且每个技能有 图标，名字，描述，提示
		{
			icon : { type : String },	//图标用二进制字符表示
			name : { type : String },
			delay: { type: String },//冷却
			cost: { type: String },//消耗
			description : { type : String },
			tips : { type : String }
		}
	],
	// 顺风出装item1,逆风出装item2：关联物品（装备，即Item模型）的Id,可多选，自由选择
	items1:  [ { type : mongoose.SchemaTypes.ObjectId, ref : 'Item' } ],
	items2:  [ { type : mongoose.SchemaTypes.ObjectId, ref : 'Item' } ],
	// 使用技巧，对抗技巧，团战技巧
	usageTips: { type: String },
  battleTips: { type: String },
	teamTips: { type: String },
	// 英雄关系:搭档 克星，这里就写搭档把,英雄可多选,关联Hero模型,描述是搭档原因
	partners:[
		{
			hero : { type : mongoose.SchemaTypes.ObjectId, ref : 'Hero' },
			description: { type: String },
		}
	]
})

// 实例赋给Hero模型，然后导出为对外接口
module.exports = mongoose.model('Hero',schema,'heroes') 